class ReservasController < ApplicationController
	layout 'archivos', :except=>[:excel]
  # GET /reservas
  # GET /reservas.xml
  def index
  	@archivo = Archivo.find(params[:archivo_id])    
		#unless @archivo.reservas_generadas?
  	#	@archivo.generar_reservas
  	#	@archivo.save
  	#end    
    respond_to do |format|
      format.html # index.rhtml
      format.xml  { render :xml => @reservas.to_xml }
      format.pdf  {       	
  		send_data @archivo.to_pdf('resumen_os'), :filename =>'resumen_os.pdf', :type => 'application/pdf', :disposition => 'inline'       
      }
    end
  end

  # GET /reservas/1
  # GET /reservas/1.xml
  def show
    @reserva = Reserva.find(params[:id])

    respond_to do |format|
      format.html # show.rhtml
      format.xml  { render :xml => @reserva.to_xml }      
      format.txt  { render :txt => @reserva.to_s }      
      format.orden  { 
      	#@reserva = Reserva.find(params[:id])
  		send_data((@reserva.snapshot ? @reserva.snapshot : @reserva.to_pdf('orden')), :filename =>'reserva.pdf', :type => 'application/pdf', :disposition => 'inline')
  		#send_data @reserva.to_pdf('orden'), :filename =>'reserva.pdf', :type => 'application/pdf', :disposition => 'inline'
      }
      format.voucher  { 
      	#@reserva = Reserva.find(params[:id])
  		send_data @reserva.to_pdf('voucher'), :filename =>'reserva.pdf', :type => 'application/pdf', :disposition => 'inline'       
      }
    end
  end  

  # GET /reservas/new
  def new        
    archivo=Archivo.find(params[:archivo_id])
    @reserva = Reserva.new(:archivo_id => params[:archivo_id])
    @reservas = archivo.reservas_nuevas
  end

  # GET /reservas/1;edit
  def edit
    @reserva = Reserva.find(params[:id])
  end

  # POST /reservas
  # POST /reservas.xml
  def create
    params[:reserva][:reserva_sp_ids] ||= []    
    @reserva = Reserva.new(params[:reserva])
    @reserva.archivo_id = params[:archivo_id]    
    @reserva.generar

    respond_to do |format|
      if @reserva.save
        flash[:notice] = 'Reserva was successfully created.'
        format.html { redirect_to reservas_url(params[:archivo_id]) }
        format.xml  { head :created, :location => reserva_url(@reserva) }
      else
        format.html { render :action => "new" }
        format.xml  { render :xml => @reserva.errors.to_xml }
      end
    end
  end

  # PUT /reservas/1
  # PUT /reservas/1.xml
  def update
    @reserva = Reserva.find(params[:id])

    respond_to do |format|
      if @reserva.update_attributes(params[:reserva])
        flash[:notice] = 'Reserva was successfully updated.'
        format.html { redirect_to reserva_url(params[:archivo_id], @reserva) }
        format.xml  { head :ok }
      else
        format.html { render :action => "edit" }
        format.xml  { render :xml => @reserva.errors.to_xml }
      end
    end
  end

  # DELETE /reservas/1
  # DELETE /reservas/1.xml
  def destroy
    @reserva = Reserva.find(params[:id])
    @reserva.destroy

    respond_to do |format|
      format.html { redirect_to reservas_url(params[:archivo_id]) }
      format.xml  { head :ok }
    end
  end  
  
  def anular
    @reserva = Reserva.find(params[:id])
		@reserva.seguimientos_reserva << SeguimientoReserva.new(:fecha => Date.today, :estado_reserva_id => 5, :descripcion => "Anulacion rapida")
		@reserva.snapshot = @reserva.to_pdf('orden')
    respond_to do |format|
      if @reserva.save
        flash[:notice] = 'Reserva was successfully updated.'
        format.html { redirect_to reservas_url(params[:archivo_id]) }
        format.xml  { head :ok }
      else
        format.html { render :action => "edit" }
        format.xml  { render :xml => @reserva.errors.to_xml }
      end
    end
  end
  
  def excel
    @archivo = Archivo.find(params[:archivo_id])
    send_data @archivo.to_excel, :filename =>'liquidacion.xls', :type => 'application/vnd.ms-excel', :disposition => 'inline'       
  end
end
